home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Magazin/MacEasy 19
/
Mac Magazin and MacEasy Magazine CD - Issue 19.iso
/
Utilities
/
uae-0.4
/
Source Code
/
CPU Sources
/
cpu4.c
< prev
next >
Wrap
C/C++ Source or Header
|
1996-02-13
|
80KB
|
2,839 lines
#include "config.h"
#include "amiga.h"
#include "options.h"
#include <stdlib.h>
#include "memory.h"
#include "custom.h"
#include "newcpu.h"
#include "cputbl.h"
void op_4000(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ BYTE src = regs.d[srcreg];
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}}
void op_4010(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4018(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}
void op_4020(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}
void op_4028(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4030(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}}
void op_4038(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4039(UWORD opcode)
{
{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4040(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.d[srcreg];
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}}
void op_4050(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4058(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ regs.a[srcreg] += 2;
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}
void op_4060(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}
void op_4068(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4070(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}}
void op_4078(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4079(UWORD opcode)
{
{{ CPTR srca = nextilong();
WORD src = get_word(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4080(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
regs.d[srcreg] = (dst);
}}}}}
void op_4090(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_4098(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ regs.a[srcreg] += 4;
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}
void op_40a0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}
void op_40a8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_40b0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}}
void op_40b8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_40b9(UWORD opcode)
{
{{ CPTR srca = nextilong();
LONG src = get_long(srca);
{ ULONG dst = -src-regs.x;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_40c0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ MakeSR();
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (regs.sr) & 0xffff;
}}}
void op_40d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
MakeSR();
put_word(srca,regs.sr);
}}}
void op_40d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 2;
MakeSR();
put_word(srca,regs.sr);
}}}}
void op_40e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
MakeSR();
put_word(srca,regs.sr);
}}}}
void op_40e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
MakeSR();
put_word(srca,regs.sr);
}}}
void op_40f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
MakeSR();
put_word(srca,regs.sr);
}}}}
void op_40f8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
MakeSR();
put_word(srca,regs.sr);
}}}
void op_40f9(UWORD opcode)
{
{{ CPTR srca = nextilong();
MakeSR();
put_word(srca,regs.sr);
}}}
void op_41d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = regs.a[srcreg];
{ regs.a[dstreg] = (srca);
}}}}
void op_41d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 4;
{ regs.a[dstreg] = (srca);
}}}}}
void op_41e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
ULONG dstreg = (opcode & 3584) >> 9;
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
{ regs.a[dstreg] = (srca);
}}}}}
void op_41e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ regs.a[dstreg] = (srca);
}}}}
void op_41f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[dstreg] = (srca);
}}}}}
void op_41f8(UWORD opcode)
{
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = (LONG)(WORD)nextiword();
{ regs.a[dstreg] = (srca);
}}}}
void op_41f9(UWORD opcode)
{
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = nextilong();
{ regs.a[dstreg] = (srca);
}}}}
void op_41fa(UWORD opcode)
{
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ regs.a[dstreg] = (srca);
}}}}
void op_41fb(UWORD opcode)
{
ULONG dstreg = (opcode & 3584) >> 9;
{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[dstreg] = (srca);
}}}}}
void op_4200(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (0) & 0xff;
}}}
void op_4210(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}
void op_4218(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}}
void op_4220(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}}
void op_4228(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}
void op_4230(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}}
void op_4238(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}
void op_4239(UWORD opcode)
{
{{ CPTR srca = nextilong();
regs.v = regs.c = 0;
regs.z = ((BYTE)(0)) == 0;
regs.n = ((BYTE)(0)) < 0;
put_byte(srca,0);
}}}
void op_4240(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (0) & 0xffff;
}}}
void op_4250(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}
void op_4258(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 2;
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}}
void op_4260(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}}
void op_4268(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}
void op_4270(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}}
void op_4278(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}
void op_4279(UWORD opcode)
{
{{ CPTR srca = nextilong();
regs.v = regs.c = 0;
regs.z = ((WORD)(0)) == 0;
regs.n = ((WORD)(0)) < 0;
put_word(srca,0);
}}}
void op_4280(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
regs.d[srcreg] = (0);
}}}
void op_4290(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}
void op_4298(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 4;
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}}
void op_42a0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}}
void op_42a8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}
void op_42b0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}}
void op_42b8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}
void op_42b9(UWORD opcode)
{
{{ CPTR srca = nextilong();
regs.v = regs.c = 0;
regs.z = ((LONG)(0)) == 0;
regs.n = ((LONG)(0)) < 0;
put_long(srca,0);
}}}
void op_42c0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ MakeSR();
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (regs.sr) & 0xff;
}}}
void op_42d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
MakeSR();
put_byte(srca,regs.sr);
}}}
void op_42d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
MakeSR();
put_byte(srca,regs.sr);
}}}}
void op_42e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
MakeSR();
put_byte(srca,regs.sr);
}}}}
void op_42e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
MakeSR();
put_byte(srca,regs.sr);
}}}
void op_42f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
MakeSR();
put_byte(srca,regs.sr);
}}}}
void op_42f8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
MakeSR();
put_byte(srca,regs.sr);
}}}
void op_42f9(UWORD opcode)
{
{{ CPTR srca = nextilong();
MakeSR();
put_byte(srca,regs.sr);
}}}
void op_4400(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ BYTE src = regs.d[srcreg];
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}}
void op_4410(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4418(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}
void op_4420(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}
void op_4428(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4430(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}}}
void op_4438(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4439(UWORD opcode)
{
{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
{ ULONG dst = -src;
{ bool flgs = ((BYTE)(src)) < 0;
bool flgo = ((BYTE)(0)) < 0;
bool flgn = ((BYTE)(dst)) < 0;
regs.z = ((BYTE)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UBYTE)(src)) > ((UBYTE)(0));
regs.n = flgn != 0;
put_byte(srca,dst);
}}}}}
void op_4440(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.d[srcreg];
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}}
void op_4450(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4458(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ regs.a[srcreg] += 2;
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}
void op_4460(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}
void op_4468(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4470(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}}}
void op_4478(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4479(UWORD opcode)
{
{{ CPTR srca = nextilong();
WORD src = get_word(srca);
{ ULONG dst = -src;
{ bool flgs = ((WORD)(src)) < 0;
bool flgo = ((WORD)(0)) < 0;
bool flgn = ((WORD)(dst)) < 0;
regs.z = ((WORD)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((UWORD)(src)) > ((UWORD)(0));
regs.n = flgn != 0;
put_word(srca,dst);
}}}}}
void op_4480(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
regs.d[srcreg] = (dst);
}}}}}
void op_4490(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_4498(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ regs.a[srcreg] += 4;
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}
void op_44a0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}
void op_44a8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_44b0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}}}
void op_44b8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_44b9(UWORD opcode)
{
{{ CPTR srca = nextilong();
LONG src = get_long(srca);
{ ULONG dst = -src;
{ bool flgs = ((LONG)(src)) < 0;
bool flgo = ((LONG)(0)) < 0;
bool flgn = ((LONG)(dst)) < 0;
regs.z = ((LONG)(dst)) == 0;
regs.v = (flgs != flgo) && (flgn != flgo);
regs.c = regs.x = ((ULONG)(src)) > ((ULONG)(0));
regs.n = flgn != 0;
put_long(srca,dst);
}}}}}
void op_44c0(UWORD opcode)
{ ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ BYTE src = regs.d[srcreg];
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_44d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_44d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}}
void op_44e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}}
void op_44e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_44f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}}}
void op_44f8(UWORD opcode)
{
{{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_44f9(UWORD opcode)
{
{{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_44fa(UWORD opcode)
{
{{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}}
void op_44fb(UWORD opcode)
{
{{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}}}
void op_44fc(UWORD opcode)
{
{{{ BYTE src = nextiword();
MakeSR();
regs.sr &= 0xFF00;
regs.sr |= src & 0xFF;
MakeFromSR();
}}}}
void op_4600(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ BYTE src = regs.d[srcreg];
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (dst) & 0xff;
}}}}
void op_4610(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}
void op_4618(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}}
void op_4620(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}}
void op_4628(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}
void op_4630(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}}}
void op_4638(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}
void op_4639(UWORD opcode)
{
{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((BYTE)(dst)) == 0;
regs.n = ((BYTE)(dst)) < 0;
put_byte(srca,dst);
}}}}
void op_4640(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.d[srcreg];
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}
void op_4650(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}
void op_4658(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ regs.a[srcreg] += 2;
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}}
void op_4660(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}}
void op_4668(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}
void op_4670(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}}}
void op_4678(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}
void op_4679(UWORD opcode)
{
{{ CPTR srca = nextilong();
WORD src = get_word(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
put_word(srca,dst);
}}}}
void op_4680(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
regs.d[srcreg] = (dst);
}}}}
void op_4690(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}
void op_4698(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ regs.a[srcreg] += 4;
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}}
void op_46a0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}}
void op_46a8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}
void op_46b0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}}}
void op_46b8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}
void op_46b9(UWORD opcode)
{
{{ CPTR srca = nextilong();
LONG src = get_long(srca);
{ ULONG dst = ~src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
put_long(srca,dst);
}}}}
void op_46c0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ WORD src = regs.d[srcreg];
regs.sr = src;
MakeFromSR();
}}}}
void op_46d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}
void op_46d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ regs.a[srcreg] += 2;
regs.sr = src;
MakeFromSR();
}}}}}
void op_46e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}}
void op_46e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}
void op_46f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}}}
void op_46f8(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = (LONG)(WORD)nextiword();
WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}
void op_46f9(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = nextilong();
WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}
void op_46fa(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}}
void op_46fb(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
regs.sr = src;
MakeFromSR();
}}}}}}
void op_46fc(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else
{{ WORD src = nextiword();
regs.sr = src;
MakeFromSR();
}}}}
void op_4800(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ BYTE src = regs.d[srcreg];
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
regs.d[srcreg] &= ~0xff; regs.d[srcreg] |= (newv) & 0xff;
}}}}
void op_4810(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}
void op_4818(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}}
void op_4820(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}}
void op_4828(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}
void op_4830(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}}}
void op_4838(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}
void op_4839(UWORD opcode)
{
{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
{ UWORD newv = - src - regs.x;
if ((newv & 0xF) > 9) newv-=6;
regs.c = regs.x = (newv & 0x1F0) > 0x90;
if (regs.c) newv -= 0x60;
if (newv != 0) regs.z = 0;
put_byte(srca,newv);
}}}}
void op_4840(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
{ ULONG dst = ((src >> 16)&0xFFFF) | ((src&0xFFFF)<<16);
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
regs.d[srcreg] = (dst);
}}}}
void op_4850(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}
void op_4858(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 4;
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}}
void op_4860(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}}
void op_4868(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}
void op_4870(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}}
void op_4878(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}
void op_4879(UWORD opcode)
{
{{ CPTR srca = nextilong();
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}
void op_487a(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}
void op_487b(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[7] -= 4;
{ CPTR dsta = regs.a[7];
put_long(dsta,srca);
}}}}}}
void op_4880(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.d[srcreg];
{ ULONG dst = (LONG)(BYTE)src;
regs.v = regs.c = 0;
regs.z = ((WORD)(dst)) == 0;
regs.n = ((WORD)(dst)) < 0;
regs.d[srcreg] &= ~0xffff; regs.d[srcreg] |= (dst) & 0xffff;
}}}}
void op_4890(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_4898(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48a0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
srca -= 2*bitcnt;
regs.a[srcreg] = srca;
for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, rd[i]); srca += 2; } mask <<= 1; }
for(i=0;i<8;i++) { if (mask & 32768) { put_word(srca, ra[i]); srca += 2; } mask <<= 1; }
}}}}}
void op_48a8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48b0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}}
void op_48b8(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48b9(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = nextilong();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, rd[i]); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_word(srca, ra[i]); srca += 2; } mask >>= 1; }
}}}}
void op_48c0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
{ ULONG dst = (LONG)(WORD)src;
regs.v = regs.c = 0;
regs.z = ((LONG)(dst)) == 0;
regs.n = ((LONG)(dst)) < 0;
regs.d[srcreg] = (dst);
}}}}
void op_48d0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48d8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48e0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
srca -= 4*bitcnt;
regs.a[srcreg] = srca;
for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, rd[i]); srca += 4; } mask <<= 1; }
for(i=0;i<8;i++) { if (mask & 32768) { put_long(srca, ra[i]); srca += 4; } mask <<= 1; }
}}}}}
void op_48e8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48f0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}}
void op_48f8(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_48f9(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = nextilong();
{ int i, bitcnt = 0;
ULONG rd[8], ra[8];
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { rd[i] = regs.d[i]; ra[i] = regs.a[i]; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, rd[i]); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { put_long(srca, ra[i]); srca += 4; } mask >>= 1; }
}}}}
void op_4a00(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ BYTE src = regs.d[srcreg];
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a10(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a18(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
{ regs.a[srcreg] += (srcreg == 7) ? 2 : 1;
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}}
void op_4a20(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= (srcreg == 7) ? 2 : 1;
{ CPTR srca = regs.a[srcreg];
BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}}
void op_4a28(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a30(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}}}
void op_4a38(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a39(UWORD opcode)
{
{{ CPTR srca = nextilong();
BYTE src = get_byte(srca);
regs.v = regs.c = 0;
regs.z = ((BYTE)(src)) == 0;
regs.n = ((BYTE)(src)) < 0;
}}}
void op_4a40(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.d[srcreg];
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a48(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ WORD src = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a50(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a58(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
{ regs.a[srcreg] += 2;
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}}
void op_4a60(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 2;
{ CPTR srca = regs.a[srcreg];
WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}}
void op_4a68(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a70(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}}}
void op_4a78(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a79(UWORD opcode)
{
{{ CPTR srca = nextilong();
WORD src = get_word(srca);
regs.v = regs.c = 0;
regs.z = ((WORD)(src)) == 0;
regs.n = ((WORD)(src)) < 0;
}}}
void op_4a80(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.d[srcreg];
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4a88(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.a[srcreg];
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4a90(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4a98(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
{ regs.a[srcreg] += 4;
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}}
void op_4aa0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}}
void op_4aa8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4ab0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}}}
void op_4ab8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4ab9(UWORD opcode)
{
{{ CPTR srca = nextilong();
LONG src = get_long(srca);
regs.v = regs.c = 0;
regs.z = ((LONG)(src)) == 0;
regs.n = ((LONG)(src)) < 0;
}}}
void op_4c90(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4c98(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
regs.a[srcreg] = srca;
}}}}
void op_4ca0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4ca8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cb0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4cb8(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cb9(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = nextilong();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cba(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}
void op_4cbb(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = (LONG)(WORD)get_word(srca); srca += 2; } mask >>= 1; }
}}}}}
void op_4cd0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cd8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
regs.a[srcreg] = srca;
}}}}
void op_4ce0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{{ CPTR srca = regs.a[srcreg];
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4ce8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cf0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4cf8(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cf9(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = nextilong();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cfa(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}
void op_4cfb(UWORD opcode)
{
{ UWORD mask = nextiword(), bitmask = mask;
{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ int i, bitcnt = 0;
for(i=0;i<16;i++) { bitcnt += bitmask & 1; bitmask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.d[i] = get_long(srca); srca += 4; } mask >>= 1; }
for(i=0;i<8;i++) { if (mask & 1) { regs.a[i] = get_long(srca); srca += 4; } mask >>= 1; }
}}}}}
void op_4e40(UWORD opcode)
{
ULONG srcreg = 0;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e41(UWORD opcode)
{
ULONG srcreg = 1;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e42(UWORD opcode)
{
ULONG srcreg = 2;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e43(UWORD opcode)
{
ULONG srcreg = 3;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e44(UWORD opcode)
{
ULONG srcreg = 4;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e45(UWORD opcode)
{
ULONG srcreg = 5;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e46(UWORD opcode)
{
ULONG srcreg = 6;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e47(UWORD opcode)
{
ULONG srcreg = 7;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e48(UWORD opcode)
{
ULONG srcreg = 8;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e49(UWORD opcode)
{
ULONG srcreg = 9;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4a(UWORD opcode)
{
ULONG srcreg = 10;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4b(UWORD opcode)
{
ULONG srcreg = 11;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4c(UWORD opcode)
{
ULONG srcreg = 12;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4d(UWORD opcode)
{
ULONG srcreg = 13;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4e(UWORD opcode)
{
ULONG srcreg = 14;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e4f(UWORD opcode)
{
ULONG srcreg = 15;
{{ ULONG src = srcreg;
Exception(src+32);
}}}
void op_4e50(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[7] -= 4;
{ CPTR olda = regs.a[7];
{ LONG src = regs.a[srcreg];
put_long(olda,src);
regs.a[srcreg] = (regs.a[7]);
{ WORD offs = nextiword();
regs.a[7] += offs;
}}}}}}
void op_4e58(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ LONG src = regs.a[srcreg];
regs.a[7] = src;
{ CPTR olda = regs.a[7];
LONG old = get_long(olda);
{ regs.a[7] += 4;
regs.a[srcreg] = (old);
}}}}}
void op_4e60(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else {
{ LONG src = regs.a[srcreg];
regs.usp = src;
}
}}}
void op_4e68(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{ if (!regs.s) { regs.pc_p--; Exception(8); } else {
{ regs.a[srcreg] = (regs.usp);
}
}}}
void op_4e70(UWORD opcode)
{
{ customreset();
}}
void op_4e71(UWORD opcode)
{
{}}
void op_4e72(UWORD opcode)
{
{ if (!regs.s) { regs.pc_p--; Exception(8); } else {
{ WORD src = nextiword();
regs.sr = src;
MakeFromSR();
m68k_setstopped(1);
}
}}}
void op_4e73(UWORD opcode)
{
{{ CPTR sra = regs.a[7];
WORD sr = get_word(sra);
{ regs.a[7] += 2;
{ CPTR pca = regs.a[7];
LONG pc = get_long(pca);
{ regs.a[7] += 4;
regs.sr = sr; m68k_setpc(pc);
MakeFromSR();
}}}}}}
void op_4e74(UWORD opcode)
{
{}}
void op_4e75(UWORD opcode)
{
{{ CPTR pca = regs.a[7];
LONG pc = get_long(pca);
{ regs.a[7] += 4;
m68k_setpc(pc);
}}}}
void op_4e76(UWORD opcode)
{
{ if(regs.v) Exception(7);
}}
void op_4e77(UWORD opcode)
{
{ MakeSR();
{ CPTR sra = regs.a[7];
WORD sr = get_word(sra);
{ regs.a[7] += 2;
{ CPTR pca = regs.a[7];
LONG pc = get_long(pca);
{ regs.a[7] += 4;
regs.sr &= 0xFF00; sr &= 0xFF;
regs.sr |= sr; m68k_setpc(pc);
MakeFromSR();
}}}}}}
void op_4e90(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}
void op_4e98(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 4;
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}}
void op_4ea0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}}
void op_4ea8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}
void op_4eb0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}}
void op_4eb8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}
void op_4eb9(UWORD opcode)
{
{{ CPTR srca = nextilong();
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}
void op_4eba(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}
void op_4ebb(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
{ regs.a[7] -= 4;
{ CPTR spa = regs.a[7];
put_long(spa,m68k_getpc());
m68k_setpc(srca);
}}}}}}
void op_4ed0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
m68k_setpc(srca);
}}}
void op_4ed8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
{ regs.a[srcreg] += 4;
m68k_setpc(srca);
}}}}
void op_4ee0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ regs.a[srcreg] -= 4;
{ CPTR srca = regs.a[srcreg];
m68k_setpc(srca);
}}}}
void op_4ee8(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg] + (LONG)(WORD)nextiword();
m68k_setpc(srca);
}}}
void op_4ef0(UWORD opcode)
{
ULONG srcreg = (LONG)(BYTE)((opcode & 7) >> 0);
{{ CPTR srca = regs.a[srcreg];
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
m68k_setpc(srca);
}}}}
void op_4ef8(UWORD opcode)
{
{{ CPTR srca = (LONG)(WORD)nextiword();
m68k_setpc(srca);
}}}
void op_4ef9(UWORD opcode)
{
{{ CPTR srca = nextilong();
m68k_setpc(srca);
}}}
void op_4efa(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
srca += (LONG)(WORD)nextiword();
m68k_setpc(srca);
}}}
void op_4efb(UWORD opcode)
{
{{ CPTR srca = m68k_getpc();
UWORD srcdp = nextiword();
srca += (LONG)(BYTE)(srcdp & 0xFF);
{ ULONG srcdpr = srcdp & 0x8000 ? regs.a[(srcdp & 0x7000) >> 12] : regs.d[(srcdp & 0x7000) >> 12];
if (!(srcdp & 0x800)) srcdpr = (LONG)(WORD)srcdpr;
srca += srcdpr;
m68k_setpc(srca);
}}}}